wayland: Move window geometry calculation to helper
authorJonas Ådahl <jadahl@gmail.com>
Fri, 1 Jul 2016 09:02:11 +0000 (17:02 +0800)
committerJonas Ådahl <jadahl@gmail.com>
Thu, 25 Aug 2016 04:31:40 +0000 (12:31 +0800)
We'll use it from more places later.

https://bugzilla.gnome.org/show_bug.cgi?id=769937

gdk/wayland/gdkwindow-wayland.c

index f1f00987e40ceaa109b5ff33b4fada787a4d61a7..7dd451b3b04fc29af9403694f70017ef7108932c 100644 (file)
@@ -1055,21 +1055,35 @@ gdk_wayland_window_sync_title (GdkWindow *window)
   xdg_surface_set_title (impl->display_server.xdg_surface, impl->title);
 }
 
+static void
+gdk_wayland_window_get_window_geometry (GdkWindow    *window,
+                                        GdkRectangle *geometry)
+{
+  GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
+
+  *geometry = (GdkRectangle) {
+    .x = impl->margin_left,
+    .y = impl->margin_top,
+    .width = window->width - (impl->margin_left + impl->margin_right),
+    .height = window->height - (impl->margin_top + impl->margin_bottom)
+  };
+}
+
 static void
 gdk_wayland_window_sync_margin (GdkWindow *window)
 {
   GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
-  gint x, y, width, height;
+  GdkRectangle geometry;
 
   if (!impl->display_server.xdg_surface)
     return;
 
-  x = impl->margin_left;
-  y = impl->margin_top;
-  width = window->width - (impl->margin_left + impl->margin_right);
-  height = window->height - (impl->margin_top + impl->margin_bottom);
-
-  xdg_surface_set_window_geometry (impl->display_server.xdg_surface, x, y, width, height);
+  gdk_wayland_window_get_window_geometry (window, &geometry);
+  xdg_surface_set_window_geometry (impl->display_server.xdg_surface,
+                                   geometry.x,
+                                   geometry.y,
+                                   geometry.width,
+                                   geometry.height);
 }
 
 static struct wl_region *